嗨!今天是第11天了,之前說明爬ptt的過程,其實我們可以理解到爬蟲的流程為:
上面三個動作的循環便是爬蟲的執行流程。
為了簡化爬蟲的開發工作,我們會使用較強大的爬蟲框架來降低開發成本,也就是Scrapy
啦!
Scrapy
?
(圖片來源 : Scrapy 1.5.1 documentation)
Spider
發送最初的請求(Requests)給Engine
。Engine
在Scheduler
調度一個請求(Requests),並要求下一次Requests做爬取。Scheduler
回傳下一個Requests給Engine
。Engine
透過Downloader Middlewares
發送請求給Downloader
。Downloader
產生一個Response透過Downloader Middlewares
傳送給Engine
。Engine
收到來自Downloader
的Response並透過Spider Middlewares
發送給Spider
處理。Spider
處理Response並爬取的項目(item)和新的請求(Requests),透過Spider Middlewares
回傳給Engine
。Engine
發送處理的項目(item)給Item Pipelines
接著發送處理的請求(Requests)到Scheduler
要求下一個可能的爬蟲請求。元件介紹:
Scrapy Engine
:整個框架的核心負責處理整個系統的資料流與事件。Scheduler
:排程器,接收Engine
的請求放到佇列中並決定下一個要抓取的網址(預設也會去除重複的網址)。Downloader
:用於下載網頁內容(發送HTTP請求/接收HTTP回應),並將內容返回給Spider。Spiders
:從網頁中提取自己需要的項目。Item Pipeline
:用來持久化實體、驗證實體的有效性、清除不需要的資訊。當頁面被解析後發送到專案管道經過幾個特定的順序處理資料。Downloader middlewares
:Scrapy Engine和Downloader間的中介,負責處理Scrapy Engine與Downloader之間的Requests
及Response
。virtualenv
:source path/to/your/virtualenv/bin/activate
若沒有Scrapy
套件,可用pip
安裝:
pip3
則將pip
改成pip3
pip install scrapy
這樣就完成了!
如果要確認是否安裝成功的話,可以直接在終端機執行scrapy
:
(.env) ~ scrapy
Scrapy 1.3.3 - no active project
Usage:
scrapy <command> [options] [args]
Available commands:
bench Run quick benchmark test
commands
fetch Fetch a URL using the Scrapy downloader
genspider Generate new spider using pre-defined templates
runspider Run a self-contained spider (without creating a project)
settings Get settings values
shell Interactive scraping console
startproject Create new project
version Print Scrapy version
view Open URL in browser, as seen by Scrapy
[ more ] More commands available when run from project directory
Use "scrapy <command> -h" to see more info about a command
出現上述的指令說明文字表示已經成功安裝好了!
現在就來開啟我們第一個Scrapy
專案:scrapy startproject <project_name>
scrapy startproject myFirstScrapyProject
會看到以下的內容:
New Scrapy project 'myFirstScrapyProject', using template directory
...
You can start your first spider with:
cd myFirstScrapyProject
scrapy genspider example example.com
那麼我們就照著它做吧:
cd myFirstScrapyProject
scrapy genspider example example.com
創建專案後,可以看到該目錄下的檔案:
這樣就創建好專案了,是不是非常容易呢?
今天就介紹到這裡,接下來會來說明如何完成Spider
的專案!
參考:
Architecture overview — Scrapy 1.5.1 documentation
請問使用VISUAL STUDIO這種IDE整合環境可以使用SCRAPY爬蟲框架嗎
對於框架的建立與操作不太會,謝謝